<?php

function generarNumero($dependencia,$tipoDocumento,$esPruebas=false){
	global $db;
	$anno=date("Y");
	if($esPruebas){
		$numAsignado=$anno.$dependencia.XXXXXX.$tipoDocumento;
	}else{
		try{
			$secuencia=buscarSecuenciaDependencia($dependencia,$tipoDocumento);
			$numSecuencia=$db->nextId($secuencia);
			//$numSecuencia=$newRadicado($tipoDocumento, $secuencia);
			$numAsignado=$anno.$dependencia.str_pad($numSecuencia,6,0,STR_PAD_LEFT).$tipoDocumento;		
		}catch (Exception $e){
			throw new Exception($e->getMessage());
		}
	}
	return $numAsignado;
}

function buscarSecuenciaDependencia($dependencia,$tipoDocumento){
	global $db;
	$nombreTipo="DEPE_RAD_TP".$tipoDocumento;
	$consulta="SELECT  {$nombreTipo} from dependencia where depe_codi=$dependencia";
	$rs=$db->query($consulta);
	if (!$rs->EOF){
			$secuencia=$rs->fields[$nombreTipo];
	}else{
		throw new Exception("La dependencia no Posee este tipo de Radicado habilitadio");
	}
	$secuencia= "SECR_TP".$tipoDocumento."_".$secuencia;
	return $secuencia;
}

function buscaDirecciones($anex,$codAnexo,$numRadicado,$dependencia,$vieneDeSancionados){
	global $ruta_raiz,$db;
	$verradicado=$numRadicado;
	$verrad=$numRadicado;
	
	require_once($ruta_raiz."ver_datosrad.php");//traer datos del radicado 
	require_once($ruta_raiz."radicacion/busca_direcciones.php");
	require_once("$ruta_raiz/class_control/Esp.php");
			
	$espObjeto = new Esp($db);	
	$a = new LOCALIZACION($codep_us1,$muni_us1,$db);
	$dpto_nombre_us1 = $a->departamento;
	$muni_nombre_us1 = $a->municipio;
	$a = new LOCALIZACION($codep_us2,$muni_us2,$db);
	$dpto_nombre_us2 = $a->departamento;
	$muni_nombre_us2 = $a->municipio;
	$a = new LOCALIZACION($codep_us3,$muni_us3,$db);
	$dpto_nombre_us3 = $a->departamento;
	$muni_nombre_us3 = $a->municipio;
	$espObjeto->Esp_nit($cc_documento_us3);
	$nuir_e = $espObjeto->getNuir();
	//Adiciones para DIR_E SSPD, no quieren que se reemplace DIR_R con DIR_E para Sancionados
	
		$isql = "select MUNI_CODI, DPTO_CODI,SGD_DIR_DIRECCION, SGD_DIR_TIPO from ANEXOS
				   where ANEX_CODIGO='$codAnexo' AND ANEX_RADI_NUME=$numRadicado"; 
			$rs=$db->query($isql); // modificacion de los datos para la ESP en el formulario de anexar archios
	if (!$rs->EOF){
		$codigoCiudadESPMod =  $rs->fields['MUNI_CODI'];
		$codigoDeptoESPMod =  $rs->fields['DPTO_CODI'];
		$direccionAlterna = $rs->fields["SGD_DIR_DIRECCION"];
		$sgd_dir_tipo = $rs->fields["SGD_DIR_TIPO"];
	}
	
	$campos = array();
	$datos  = array();
	$anex->obtenerArgumentos($campos,$datos);
		
	 $sgd_dir_tipo=$anex->get_sgd_dir_tipo();
//Verifica y cambia la dirección cuando modifican la dir de la ESP, se movio a 
//esta parte para que funcione también en previsualización
	$pais=substr($codep_us1,0,strpos($codep_us1,"-"));
	
	if($sgd_dir_tipo==2 && $vieneDeSancionados == 0) {
		$dir_tipo_us1 = $dir_tipo_us2;
		$tipo_emp_us1=$tipo_emp_us2;
		$nombre_us1=$nombre_us2;
		$grbNombresUs1=$nombre_us2;
		$documento_us1 = $documento_us2;
		$cc_documento_us1 = $cc_documento_us2;
		$prim_apel_us1 =$prim_apel_us2 ;
		$seg_apel_us1 = $seg_apel_us2 ;
		$telefono_us1 = $telefono_us2;
		$direccion_us1 = $direccion_us2;
		$mail_us1 = $mail_us2;
		$muni_us1 = $muni_us2;
		$codep_us1 = $codep_us2;
		$tipo_us1 = $tipo_us2;
		$otro_us1  = $otro_us2;
		$pais=substr($codep_us2,0,strpos($codep_us2,"-"));
		
	}
	if($sgd_dir_tipo==3 && $vieneDeSancionados == 0) {
		$dir_tipo_us1 = $dir_tipo_us3;
		$tipo_emp_us1=$tipo_emp_us3;
		$nombre_us1=$nombre_us3;
		$grbNombresUs1=$nombre_us3;
		$documento_us1 = $documento_us3;
		$cc_documento_us1 = $cc_documento_us3;
		$prim_apel_us1 =$prim_apel_us3 ;
		$seg_apel_us1 = $seg_apel_us3 ;
		$telefono_us1 = $telefono_us3;
		$direccion_us1 = $direccion_us3;
		$mail_us1 = $mail_us3;
		$muni_us1 = $muni_us3;
		$codep_us1 = $codep_us3;
		$tipo_us1 = $tipo_us3;
		$otro_us1  = $otro_us3;
		$pais=substr($codep_us3,0,strpos($codep_us3,"-"));
	}
	if($direccionAlterna and $sgd_dir_tipo==3) {
		$direccion_us3 = $direccionAlterna;
		$muni_us3 = $muniCodiAlterno;
		$codep_us3 = $dptoCodiAlterno;
	}
	$direcciones= array("dir_tipo_us1"=>$dir_tipo_us1,"dir_tipo_us1" => $dir_tipo_us1,
		"tipo_emp_us1"=>$tipo_emp_us1,"nombre_us1"=>$nombre_us1,"grbNombresUs1"=>$nombre_us1,
		"documento_us1" => $documento_us1,"cc_documento_us1" => $cc_documento_us1,
		"prim_apel_us1" =>$prim_apel_us1,"seg_apel_us1" => $seg_apel_us1,"telefono_us1" => $telefono_us1,
		"direccion_us1" => $direccion_us1,"mail_us1" => $mail_us3,"muni_us1" => $muni_us1,
		"codep_us1" => $codep_us1,"tipo_us1" => $tipo_us1,"otro_us1"  => $otro_us1,
		"dpto_nombre_us2" => $dpto_nombre_us2,"muni_nombre_us2" => $muni_nombre_us2,
		"direccion_us3" => $direccion_us3,"muni_us3" => $muni_us3,"codep_us3" => $codep_us3,
		"nombret_us1"=>$nombret_us1,"tipo_emp_us2"=>$tipo_emp_us2,"nombret_us2"=>$nombret_us2,
		"tipo_emp_us3"=>$tipo_emp_us3,"nombret_us3" => $nombret_us3,"nombret_us1_u"=>$nombret_us1_u,
		"nombret_us2_u" =>$nombret_us2_u,"nombret_us3_u" =>$nombret_us3_u,"esp_codi"=>$espcodi,"pais"=>$pais);
	
	return $direcciones;

}
/*
function guardarDirecciones($anex,$codAnexo,$numRadicado,$dependencia,$vieneDeSancionados){
	global $ruta_raiz,$db;
	$verradicado=$numRadicado;
	$verrad=$numRadicado;
	
	require_once($ruta_raiz."ver_datosrad.php");//traer datos del radicado 
	require_once($ruta_raiz."radicacion/busca_direcciones.php");
	require_once("$ruta_raiz/class_control/Esp.php");
			
	$espObjeto = new Esp($db);	
	$a = new LOCALIZACION($codep_us1,$muni_us1,$db);
	$dpto_nombre_us1 = $a->departamento;
	$muni_nombre_us1 = $a->municipio;
	$a = new LOCALIZACION($codep_us2,$muni_us2,$db);
	$dpto_nombre_us2 = $a->departamento;
	$muni_nombre_us2 = $a->municipio;
	$a = new LOCALIZACION($codep_us3,$muni_us3,$db);
	$dpto_nombre_us3 = $a->departamento;
	$muni_nombre_us3 = $a->municipio;
	$espObjeto->Esp_nit($cc_documento_us3);
	$nuir_e = $espObjeto->getNuir();
	//Adiciones para DIR_E SSPD, no quieren que se reemplace DIR_R con DIR_E para Sancionados
	
		$isql = "select MUNI_CODI, DPTO_CODI,SGD_DIR_DIRECCION, SGD_DIR_TIPO from ANEXOS
				   where ANEX_CODIGO='$codAnexo' AND ANEX_RADI_NUME=$numRadicado"; 
			$rs=$db->query($isql); // modificacion de los datos para la ESP en el formulario de anexar archios
	if (!$rs->EOF){
		$codigoCiudadESPMod =  $rs->fields['MUNI_CODI'];
		$codigoDeptoESPMod =  $rs->fields['DPTO_CODI'];
		$direccionAlterna = $rs->fields["SGD_DIR_DIRECCION"];
		$sgd_dir_tipo = $rs->fields["SGD_DIR_TIPO"];
	}
	
	$campos = array();
	$datos  = array();
	$anex->obtenerArgumentos($campos,$datos);
		
	 $sgd_dir_tipo=$anex->get_sgd_dir_tipo();
//Verifica y cambia la dirección cuando modifican la dir de la ESP, se movio a 
//esta parte para que funcione también en previsualización
	$pais=substr($codep_us1,0,strpos($codep_us1,"-"));
	
	if($sgd_dir_tipo==2 && $vieneDeSancionados == 0) {
		$dir_tipo_us1 = $dir_tipo_us2;
		$tipo_emp_us1=$tipo_emp_us2;
		$nombre_us1=$nombre_us2;
		$grbNombresUs1=$nombre_us2;
		$documento_us1 = $documento_us2;
		$cc_documento_us1 = $cc_documento_us2;
		$prim_apel_us1 =$prim_apel_us2 ;
		$seg_apel_us1 = $seg_apel_us2 ;
		$telefono_us1 = $telefono_us2;
		$direccion_us1 = $direccion_us2;
		$mail_us1 = $mail_us2;
		$muni_us1 = $muni_us2;
		$codep_us1 = $codep_us2;
		$tipo_us1 = $tipo_us2;
		$otro_us1  = $otro_us2;
		$pais=substr($codep_us2,0,strpos($codep_us2,"-"));
		
	}
	if($sgd_dir_tipo==3 && $vieneDeSancionados == 0) {
		$dir_tipo_us1 = $dir_tipo_us3;
		$tipo_emp_us1=$tipo_emp_us3;
		$nombre_us1=$nombre_us3;
		$grbNombresUs1=$nombre_us3;
		$documento_us1 = $documento_us3;
		$cc_documento_us1 = $cc_documento_us3;
		$prim_apel_us1 =$prim_apel_us3 ;
		$seg_apel_us1 = $seg_apel_us3 ;
		$telefono_us1 = $telefono_us3;
		$direccion_us1 = $direccion_us3;
		$mail_us1 = $mail_us3;
		$muni_us1 = $muni_us3;
		$codep_us1 = $codep_us3;
		$tipo_us1 = $tipo_us3;
		$otro_us1  = $otro_us3;
		$pais=substr($codep_us3,0,strpos($codep_us3,"-"));
	}
	if($direccionAlterna and $sgd_dir_tipo==3) {
		$direccion_us3 = $direccionAlterna;
		$muni_us3 = $muniCodiAlterno;
		$codep_us3 = $dptoCodiAlterno;
	}
	$conexion=$db;
	if ($numerar!=1)
		 	 require_once($ruta_raiz."radicacion/grb_direcciones.php");
		 	 
}*/

function radicarAnexo($codAnexo,$numRadicado,$usaLogin){
	global $ruta_raiz,$db;
	ob_start();
	require_once($ruta_raiz."JBPM/MODEL/combinadorRadicados/CombinadorFactory.php");
	ob_get_clean();
	require_once($ruta_raiz."class_control/anexo.php");
	require_once($ruta_raiz."class_control/Dependencia.php");
	require_once($ruta_raiz."class_control/TipoDocumento.php");
	require_once($ruta_raiz."class_control/Radicado.php");
	require_once($ruta_raiz."include/tx/Historico.php");
	require_once($ruta_raiz."class_control/ControlAplIntegrada.php");
	require_once($ruta_raiz."include/tx/Expediente.php");
	require_once($ruta_raiz."include/tx/Historico.php");
	require_once($ruta_raiz."class_control/Sancionados.php");
	require_once($ruta_raiz."JBPM/MODEL/funcionesAuxiliares/funcionesAuxiliares.php");
	
	$usaLogin=($usaLogin=="manager")?"ADMON":$usaLogin;
	
	$dep = new Dependencia($db);
	$radObjeto = new Radicado($db);
	
	$objCtrlAplInt = new ControlAplIntegrada($db);	// Objeto control de aplicaciones integradas
	$objExpediente = new Expediente($db);		// Objeto expediente
	
	$radObjeto->radicado_codigo($numRadicado);
	
	$tdoc = new TipoDocumento($db);		//objeto que maneja el tipo de documento del anexos
	
	$tdoc2 = new TipoDocumento($db);	//objeto que maneja el tipo de documento del radicado
	$tdoc2->TipoDocumento_codigo($radObjeto->getTdocCodi());

	
	$hist = new Historico($db);
	$anex =new Anexo($db);
	
	$anex->anexoRadicado($numRadicado,$codAnexo);
	$noRad=$anex->get_radi_nume_salida();
	$anexName=$anex->get_anex_nomb_archivo();
	$usuario=getInfoUsuario($usaLogin);
	
	$nombreArchivo=$ruta_raiz."bodega/".substr($anexName,1,4)."/".substr($anexName,5,3)."/docs/".$anexName;      
	
	$expRadi = $objExpediente->consulta_exp($numRadicado);
	
	$dependencia= $usuario['usua_depe'];
	$dep->Dependencia_codigo($dependencia);
	$dep_sigla = $dep->getDepeSigla();
	
	$archInsumo = "tmp_".$usuario['usua_doc']."_" .date("Y_m_d_H_i_s"). ".txt"; //var que almacena el nombre que tendra la pantilla
	$terr_ciu_nomb = $dep->getTerrCiuNomb();	//Var que almacena el nombre de la ciudad de la territorial
	$terr_sigla = $dep->getTerrSigla();		//Var que almacena el nombre corto de la territorial
	$terr_direccion = $dep->getTerrDireccion();	//Var que almacena la direccion de la territorial
	$terr_nombre = $dep->getTerrNombre();		//Var que almacena el nombre largo de la territorial
	$nom_recurso =  $tdoc2->get_sgd_tpr_descrip();	//Var que almacena el nombre del recurso
	
		$isql = "select SGD_TRAD_CODIGO,SGD_DIR_TIPO,ANEX_DESC,ANEX_NUMERO,SGD_DIR_DIRECCION,SGD_EXP_NUMERO 
					FROM ANEXOS where ANEX_CODIGO='$codAnexo' 
					AND ANEX_RADI_NUME=$numRadicado";
		$rs=$db->query($isql);
		
		$sgd_dir_tipo = $rs->fields["SGD_DIR_TIPO"];
		$anex_desc = $rs->fields["ANEX_DESC"];
		$anex_numero = $rs->fields["ANEX_NUMERO"];
		$expRadi=($rs->fields['SGD_EXP_NUMERO']!="")?$rs->fields['SGD_EXP_NUMERO']:$expRadi;
		$tpradic=$rs->fields["SGD_TRAD_CODIGO"];
		
		$crearRadicado=false;
		
		/*print "numero Radicado =".$numRadicado."codigo Anexo".$codAnexo."USUARIO".$usaLogin; 
		print $anexName." -- ".$tpradic;*/
		
		if(!$tpradic || !$anexName)
			throw new Exception("El Anexo No puede ser Radicado  no se ha definido pra radicar $tpradic o no ha llegado el Anexo");
			
		
		//Creacion de los enlaces para el archivo saliente
		
		$apliCodiaux = $anex->get_sgd_apli_codi();

		$secuenciaDocto = $anex->get_doc_secuencia_formato($dependencia);
		$fechaDocumento = $anex->get_sgd_fech_doc();
		$tipoDocumento = $anex->get_sgd_tpr_codigo();
		$tdoc->TipoDocumento_codigo($tipoDocumento);
		$tipoDocumentoDesc = $tdoc->get_sgd_tpr_descrip();

		$codusuario = $usuario['usua_codi'];
	
		if ($tpradic==1) {	
			if ($entidad_depsal !=0) {
				$radiDepeActu = $entidad_depsal;
					$radiUsuaActu =1;
			} else {
				$radiDepeActu = $dependencia;
				$radiUsuaActu = $codusuario;
			}
		} else {
			$radiDepeActu = $dependencia;
			$radiUsuaActu =$codusuario;
		}
		$vieneDeSancionados = 0;
	 		//Trae la informaciï¿½n de Sancionados y genera los campos de combinaciï¿½n
	 		$camposSanc = array();
	 		$datosSanc  = array();
	 		$objSancionados =  new Sancionados($db);
	 
	 		if ( $objSancionados->sancionadosRad($anex->anex_codigo)){
	 	$objSancionados->obtenerCampos($camposSanc,$datosSanc);
		$vieneDeSancionados = 1;
	 	
	 }else if($objSancionados->sancionadosRad($numrad)){
	 	
	 	$objSancionados->obtenerCampos($camposSanc,$datosSanc);
		$vieneDeSancionados = 2;
	 }else $vieneDeSancionados = 0;
		
		if(!$noRad){
	 		$noRad= generarNumero($dependencia,$tpradic);
			$crearRadicado=true;
		}
		
		try{
			 $docCombinador=CombinadorFactory::getCombinadorFactory($nombreArchivo);
			 
			 $docCombinador->setNombreInsumo($archInsumo);
			 $docCombinador->setRutaInsumo($ruta_raiz."bodega/masiva/");
			 $datosCombinadcion=array("archivoInicial" => $docCombinador->getEnlaceArchivo()."\n",
			 						"archivoFinal"=>str_replace("./","",$docCombinador->getEnlaceArchivo())."\n",
			 						"*RAD_S*"=>$noRad."\n","<Radicado>"=>$noRad."\n",
			 						"*RAD_E_PADRE*"=>$numRadicado."\n","*CTA_INT*"=>$cuentai."\n",
			 						"*ASUNTO*"=>$ra_asun."\n","*F_RAD_E*"=>$fecha_e."\n",
			 						"*SAN_FECHA_RADICADO*"=>$fecha_e."\n",
			 						"*F_RAD_S*"=>$fecha_hoy_corto."\n","*RAD_E*"=>$numRadicado."\n",
			 						"*SAN_RADICACION*"=>$numRadicado."\n","*SECTOR*"=>$sector_nombre."\n"
			 						,"*NRO_PAGS*"=>$radi_nume_hoja."\n","*DESC_ANEXOS*"=>$radi_desc_anex."\n",
			 						"*F_HOY_CORTO*"=>$fecha_hoy_corto."\n","*F_HOY*"=>$fecha_hoy."\n",
			 						"*NUM_DOCTO*"=>$secuenciaDocto."\n","*F_DOCTO*"=>$fechaDocumento."\n" 
			 						,"*F_DOCTO1*"=>$fechaDocumento2."\n","*FUNCIONARIO*"=>$usua_nomb."\n"
			 						,"*LOGIN*"=>$usaLogin."\n","*DEP_NOMB*"=>$dependencianomb."\n","*CIU_TER*"=>$terr_ciu_nomb."\n"
			 						,"*DEP_SIGLA*"=>$dep_sigla."\n" ,"*TER*"=>$terr_sigla."\n","*DIR_TER*"=>$terr_direccion."\n"
			 						,"*TER_L*"=>$terr_nombre."\n","*NOM_REC*"=>$nom_recurso."\n","*EXPEDIENTE*"=>$expRadi."\n"
			 						,"*NUM_EXPEDIENTE*"=>$expRadi."\n");
			 						
			 $dir=buscaDirecciones($anex,$codAnexo,$numRadicado,$dependencia,$vieneDeSancionados);						
			 $direcciones=array("*NOM_R*"=>$dir['nombret_us1_u']."\n","<USUARIO>"=>$dir['nombret_us1_u']."\n"
			 			,"*DIR_R*"=>$dir['direccion_us1']."\n","*DIR_E*"=>$dir['direccion_us3']."\n"
			 			,"<SGD_CIU_DIRECCION>"=>$dir['direccion_us1']."\n","*DEPTO_R*"=>$dir['dpto_nombre_us1']."\n"
			 			,"*MPIO_R*"=>$dir['muni_nombre_us1']."\n","<DPTO_NOMB>"=>$dir['dpto_nombre_us1']."\n"
			 			,"<MUNI_NOMB>"=>$dir['muni_nombre_us1']."\n","*TEL_R*"=>$dir['telefono_us1']."\n"
			 			,"*MAIL_R*"=>$dir['mail_us1']."\n","*DOC_R*"=>$dir['cc_documentous1']."\n","*NOM_P*"=>$dir['nombret_us2_u']."\n"
			 			,"*DIR_P*"=>$dir['direccion_us2']."\n","*DEPTO_P*"=>$dir['dpto_nombre_us2']."\n"
			 			,"*MPIO_P*"=>$dir['muni_nombre_us2']."\n","*TEL_P*"=>$dir['telefono_us1']."\n"
			 			,"*MAIL_P*"=>$dir['mail_us2']."\n","*DOC_P*"=>$dir['cc_documento_us2']."\n"
			 			,"*NOM_E*"=>$dir['nombret_us3_u']."\n","<NOMBRE_DE_LA_EMPRESA>"=>$dir['nombret_us3_u']."\n"
			 			,"*DIR_E*"=>$dir['direccion_us3']."\n","*MPIO_E*"=>$dir['muni_nombre_us3']."\n"
			 			,"*DEPTO_E*"=>$dir['dpto_nombre_us3']."\n","*TEL_E*"=>$dir['telefono_us3']."\n"
			 			,"*MAIL_E*"=>$dir['mail_us3']."\n","*NIT_E*"=>$dir['cc_documento_us3']."\n"
			 			,"*NUIR_E*"=>$dir['nuir_e']."\n"
			 			,"*DIGNATARIO*"=>$dir['otro_us1']."\n");
			 //BUSCA QUERYS ADICIONALES RESPECTO DE APLICATIVOS INTEGRADOS
			$campos=array("P_RAD_E" => $noRad,"P_USUA_CODI" => $codusuario,"P_DEPENDENCIA"=> $dependencia,
							"P_USUA_DOC" => $usua_doc,"P_COD_REF" => $codAnexo);
			$docCombinador->generarArchivoInsumo($datosCombinadcion+$direcciones+$campos); 
			$archiovoCombinar=$docCombinador->generarCombinacion();
			}catch (Exception $e){
				throw $e;
			}
		if(!$archiovoCombinar){
			throw new Exception("No se ha generado el archivo",1024);
		}
		$archUpdate=substr($archiovoCombinar,strrpos($archiovoCombinar,"/")+1);
		
		$dep_radicado = $dependencia;
		$carp_codi = 1;
		if (!isset($tipo_docto)) $tipo_docto=0;
		if($sgd_dir_tipo==1) {
			$grbNombresUs1=$nombret_us1_u;
		}	
		
		$sqlFechaHoy=$db->conn->OffsetDate(0,$db->conn->sysTimeStamp);
			
		$radiTipoDeri = 0;
		$radiCuentai = "''";
		$eespCodi = $dir['esp_codi'];
		$mrecCodi = "null"; // "dd/mm/aaaa"
	  	$radiFechOfic =$sqlFechaHoy;
		$radiNumeDeri = $numRadicado;
		
		$radiPais =  $dir['pais'];
		//$descAnex =  "'$desc_anexos'";

		$raAsun = "'$anex->anex_desc'";		
		$radiDepeRadi = $dependencia ;
		$trteCodi =  "null";
		$tdocCodi = $tipo_docto;
		$tdidCodi = "null";
		$carpCodi = $tpradic; //por revisar coomo recoger el valor
		$carPer = 0;
		$trteCodi = "null";
		//$ra_asun = "'$asunto'";
		$radiPath = "'".$archiovoCombinar."'";
		
		if (strlen(trim($apliCodiaux)) > 0 && $apliCodiaux > 0)
					$aplinteg = $apliCodiaux;
		else $aplinteg = "0";
		
		$sgd_apli_codi = $aplinteg;
		$k=0;			

		if($crearRadicado){
			$db->conn->BeginTrans();
		//	guardarDirecciones($anex,$codAnexo,$numRadicado,$dependencia,$vieneDeSancionados);
			$consulta="INSERT INTO RADICADO (radi_tipo_deri, RADI_CUENTAI, EESP_CODI, MREC_CODI, 
											  radi_fech_ofic,RADI_NUME_DERI, RADI_USUA_RADI, RADI_PAIS, 
											  RA_ASUN, radi_desc_anex, RADI_DEPE_RADI,RADI_USUA_ACTU, 
											  carp_codi, CARP_PER, RADI_NUME_RADI, TRTE_CODI, 
											  RADI_FECH_RADI, RADI_DEPE_ACTU,TDOC_CODI, TDID_CODI, 
											  CODI_NIVEL, SGD_APLI_CODI, RADI_PATH) VALUES ($radiTipoDeri,
											  $radiCuentai,$eespCodi, $mrecCodi,$radiFechOfic, 
											  $radiNumeDeri,$codusuario, $radiPais, $raAsun,
											  null,$radiDepeRadi, $codusuario,$carpCodi,
											  $carPer,$noRad,$trteCodi,$radiFechOfic,$dependencia,
											  $tdocCodi,$tdidCodi,".$usuario['usua_nivel'].",$sgd_apli_codi,$radiPath)";
			if(!$db->query($consulta)){
				throw new Exception("No ingreso la informacion del radicado".$consulta);
			}
					
			
			$codTx = 2;
			$flag = 1;
				
			//se verifica si se debe incluir en un expediente el nuevo radicado.
				
			if (isset($expRadi) && $expRadi!=0) {
					$resultadoExp = $objExpediente->insertar_expediente($expRadi,$noRad,$dependencia,$codusuario,$usua_doc);
					$radicados = "";
					if($resultadoExp==1) {
						$observa = "Se ingresa al expediente del radicado padre ({$noRad})";
						$radicados[] = $noRad;
						$tipoTx = 53;
						$Historico = new Historico($db);
						$Historico->insertarHistoricoExp($expRadi,
										$radicados,
										$dependencia,
										$codusuario,
										$observa,
										$tipoTx,0,0);
					}else{
		 				$db->conn->RollbackTrans();
						throw new Exception('No se anexo este radicado al expediente. Verifique que el numero del expediente exista e intente de nuevo');
					}
				}
				
				if(!isset($MODULO_RADICACION_DOCS_ANEXOS))$MODULO_RADICACION_DOCS_ANEXOS=0;
		
				$estQueryAdd = $objCtrlAplInt->queryAdds($noRad,$campos,$MODULO_RADICACION_DOCS_ANEXOS);
				if ($estQueryAdd=="0"){
					$db->conn->RollbackTrans();
					throw  new Exception("Error de comunicacion con Sancionados");
				}
		
					$rad_salida = $noRad;
					$numextdoc=$anex->anex_tipo;
					$isql = "update ANEXOS set RADI_NUME_SALIDA=$rad_salida,
							ANEX_SOLO_LECT = 'S',
							ANEX_RADI_FECH = ".$db->conn->OffsetDate(0,$db->conn->sysTimeStamp).",
							ANEX_ESTADO = 2,
							ANEX_NOMB_ARCHIVO = '$archUpdate', 
							ANEX_TIPO='$numextdoc',
							SGD_DEVE_CODIGO = null
			           where ANEX_CODIGO='$codAnexo' AND ANEX_RADI_NUME=$numRadicado";
			
			$rs=$db->query($isql);
			if (!$rs){
				$db->conn->RollbackTrans();
				throw new Exception("No se logro actuliazar datos");
			}
	
			$pasar_direcciones = true;
			
			$nurad = $rad_salida;
			$documento_us2 = "";
			$documento_us3 = "";
			$conexion = $db;
		
			$actualizados = 4;
			$sgd_dir_tipo = 1;
	
			
			$isql = "select a.sgd_dir_codigo,
					a.sgd_dir_direccion,
					a.sgd_dir_telefono,
					a.sgd_dir_mail,
					b.sgd_ciu_nombre as NOMBRE,
					b.SGD_CIU_APELL1 as APELL1,
					b.SGD_CIU_APELL2 as APELL2,
					b.SGD_CIU_CEDULA,
					a.SGD_DIR_TIPO
				from sgd_dir_drecciones a
					LEFT JOIN sgd_ciu_ciudadano b ON a.sgd_ciu_codigo = b.sgd_ciu_codigo
				where a.sgd_dir_tipo like '7%' and 
					a.sgd_dir_tipo <> 7  and 
					a.sgd_anex_codigo='$codAnexo'";
					
			$rs=$db->query($isql);
			$k = 0;
			while(!$rs->EOF){
				  $anexo_new = $rad_salida.substr("00000". ($i+1),-5);
				  $sgd_dir_codigo = $rs->fields['SGD_DIR_CODIGO'];
				  $radi_nume_radi = $noRad;
				  $sgd_dir_tipo = $rs->fields['SGD_DIR_TIPO'];
				  $anex_tipo = "20";
				  $anex_creador = $krd;
				  $anex_borrado = "N";
				  $anex_nomb_archivo = " ";
				  $anexo_num = $i + 1;
				  $isql = "insert into ANEXOS (ANEX_RADI_NUME,RADI_NUME_SALIDA,ANEX_SOLO_LECT,ANEX_RADI_FECH,ANEX_ESTADO,ANEX_CODIGO  ,anex_tipo   ,ANEX_CREADOR  ,ANEX_NUMERO    ,ANEX_NOMB_ARCHIVO   ,ANEX_BORRADO   ,sgd_dir_tipo)
					VALUES ($numRadicado       ,$rad_salida     ,'S'           ,$sqlFechaHoy       ,2          ,'$anexo_new','$anex_tipo','$anex_creador','$anexo_num','$anex_nomb_archivo','$anex_borrado','$sgd_dir_tipo')";
				  $rs2=$db->query($isql);
				 if (!$rs2){
						$db->conn->RollbackTrans();
						throw new Exception("No se pudo insertar en la tabla de anexos");
					}
					$isql = "UPDATE sgd_dir_drecciones
					         set RADI_NUME_RADI=$rad_salida
	  					     where
								sgd_dir_codigo=$sgd_dir_codigo
							 ";
					$rs2=$db->query($isql);
				if (!$rs2){
						$db->conn->RollbackTrans();
						throw new Exception("No se pudo actualizar las direcciones");
					}
				  $sgd_dir_tipo++;
				  $i++;
				  $k++;
					$rs->MoveNext();
				 }
				 $db->conn->CommitTrans();
		}
				 $salida= array("numero radicado"=>$noRad,"copias"=>$k);
				 return $salida;
}
?>